/**
 * Copyright (C), 2001-2031, www.bosssof.com.cn
 * FileName: BaseEntity.java
 * Author: abel.zhan
 * Date: 2024-05-28 15:18
 * Description:
 * 定义了一些系统常用的公共字段
 * History:
 * Date          Author   Version  Desc
 * 2024-01-01    bosssoft  1.0.0   initialize this file
 */
package com.bosssoft.common.data.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
/**
 * 基础实体类，用于定义具有通用字段的实体。
 *
 * <p>此类包含了大部分数据表所共有的字段，如ID、创建者、更新者、创建时间、更新时间和状态等。
 * 继承自该类的子类将自动获得这些字段的定义，方便进行数据库操作。</p>
 *
 * @author [您的名字或组织]
 * @since [版本或日期]
 */
public abstract class BaseEntity {

    /**
     * 唯一标识符。
     * 通常用于数据库中的主键字段。
     */
    private Long id;

    /**
     * 创建者的ID。
     * 标识该实体是由哪个用户创建的。
     */
    private Long createdBy;

    /**
     * 更新者的ID。
     * 标识该实体最后一次是由哪个用户更新的。
     */
    private Long updatedBy;

    /**
     * 创建时间。
     * 记录该实体在数据库中的创建时间。
     */
    private Date createdTime;

    /**
     * 更新时间。
     * 记录该实体在数据库中的最后更新时间。
     */
    private Date updatedTime;

    /**
     * 实体状态。
     * 标识该实体的当前状态，例如：有效、无效、删除等。
     * 具体的状态值需要参考业务逻辑定义。
     */
    private Byte status;

    // 这里通常不会直接包含getter和setter方法，因为这是一个抽象类
    // 但如果你的IDE或编码规范需要，可以手动添加或使用IDE自动生成
    // ...
}
